home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / Evas.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-01-09  |  45.8 KB  |  736 lines

  1. #ifndef _EVAS_H
  2. #define _EVAS_H
  3.  
  4. #ifdef EAPI
  5. #undef EAPI
  6. #endif
  7. #ifdef WIN32
  8. # ifdef BUILDING_DLL
  9. #  define EAPI __declspec(dllexport)
  10. # else
  11. #  define EAPI __declspec(dllimport)
  12. # endif
  13. #else
  14. # ifdef __GNUC__
  15. #  if __GNUC__ >= 4
  16. #   define EAPI __attribute__ ((visibility("default")))
  17. #  else
  18. #   define EAPI
  19. #  endif
  20. # else
  21. #  define EAPI
  22. # endif
  23. #endif
  24.  
  25. /**
  26.  * @file
  27.  * @brief These routines are used for Evas library interaction.
  28.  */
  29.  
  30. typedef enum _Evas_Callback_Type
  31. {
  32.    EVAS_CALLBACK_MOUSE_IN, /**< Mouse In Event */
  33.    EVAS_CALLBACK_MOUSE_OUT, /**< Mouse Out Event */
  34.    EVAS_CALLBACK_MOUSE_DOWN, /**< Mouse Button Down Event */
  35.    EVAS_CALLBACK_MOUSE_UP, /**< Mouse Button Up Event */
  36.    EVAS_CALLBACK_MOUSE_MOVE, /**< Mouse Move Event */
  37.    EVAS_CALLBACK_MOUSE_WHEEL, /**< Mouse Wheel Event */
  38.    EVAS_CALLBACK_FREE, /**< Object Being Freed */
  39.    EVAS_CALLBACK_KEY_DOWN, /**< Key Press Event */
  40.    EVAS_CALLBACK_KEY_UP, /**< Key Release Event */
  41.    EVAS_CALLBACK_FOCUS_IN, /**< Focus In Event */
  42.    EVAS_CALLBACK_FOCUS_OUT, /**< Focus Out Event */
  43.    EVAS_CALLBACK_SHOW, /**< Show Event */
  44.    EVAS_CALLBACK_HIDE, /**< Hide Event */
  45.    EVAS_CALLBACK_MOVE, /**< Move Event */
  46.    EVAS_CALLBACK_RESIZE, /**< Resize Event */
  47.    EVAS_CALLBACK_RESTACK /**< Restack Event */
  48. } Evas_Callback_Type; /**< The type of event to trigger the callback */
  49.  
  50. typedef enum _Evas_Button_Flags
  51. {
  52.    EVAS_BUTTON_NONE = 0, /**< No extra mouse button data */
  53.    EVAS_BUTTON_DOUBLE_CLICK = (1 << 0), /**< This mouse button press was the 2nd press of a double click */
  54.    EVAS_BUTTON_TRIPLE_CLICK = (1 << 1) /**< This mouse button press was the 3rd press of a triple click */
  55. } Evas_Button_Flags; /**< Flags for Mouse Button events */
  56.  
  57. typedef struct _Evas_List             Evas_List; /**< A generic linked list node handle */
  58. typedef struct _Evas_Rectangle        Evas_Rectangle; /**< A generic rectangle handle */
  59. typedef struct _Evas_Smart_Class      Evas_Smart_Class; /**< A smart object base class */
  60.  
  61. typedef struct _Evas_Hash Evas_Hash; /**< A Hash table handle */
  62. typedef struct _Evas Evas; /**< An Evas canvas handle */
  63. typedef struct _Evas_Object Evas_Object; /**< An Evas Object handle */
  64. typedef void Evas_Performance; /**< An Evas Performance handle */
  65. typedef struct _Evas_Modifier Evas_Modifier; /**< An Evas Modifier */
  66. typedef struct _Evas_Lock Evas_Lock; /**< An Evas Lock */
  67. typedef struct _Evas_Smart Evas_Smart; /**< An Evas Smart Object handle */
  68. typedef unsigned long long Evas_Modifier_Mask; /**< An Evas modifier mask type */
  69.  
  70. typedef int    Evas_Coord;
  71. typedef int    Evas_Font_Size;
  72. typedef int    Evas_Angle;
  73. typedef char   Evas_Bool;
  74.  
  75. struct _Evas_List /** A linked list node */
  76. {
  77.    void      *data; /**< Pointer to list element payload */
  78.    Evas_List *next; /**< Next member in the list */
  79.    Evas_List *prev; /**< Previous member in the list */
  80.    void      *accounting; /**< Private list accounting info - don't touch */
  81. };
  82.  
  83. struct _Evas_Rectangle /** A rectangle */
  84. {
  85.    int x; /**< top-left x co-ordinate of rectangle */
  86.    int y; /**< top-left y co-ordinate of rectangle */
  87.    int w; /**< width of rectangle */
  88.    int h; /**< height of rectangle */
  89. };
  90.  
  91. struct _Evas_Smart_Class /** a smart object class */
  92. {
  93.    const char *name; /** the string name of the class */
  94.  
  95.    void  (*add)         (Evas_Object *o);
  96.    void  (*del)         (Evas_Object *o);
  97.    void  (*move)        (Evas_Object *o, Evas_Coord x, Evas_Coord y);
  98.    void  (*resize)      (Evas_Object *o, Evas_Coord w, Evas_Coord h); 
  99.    void  (*show)        (Evas_Object *o); // FIXME: DELETE ME
  100.    void  (*hide)        (Evas_Object *o); // FIXME: DELETE ME
  101.    void  (*color_set)   (Evas_Object *o, int r, int g, int b, int a); // FIXME: DELETE ME
  102.    void  (*clip_set)    (Evas_Object *o, Evas_Object *clip); // FIXME: DELETE ME
  103.    void  (*clip_unset)  (Evas_Object *o); // FIXME: DELETE ME
  104.  
  105.    const void *data;
  106. };
  107.  
  108. typedef struct _Evas_Pixel_Import_Source Evas_Pixel_Import_Source; /**< A source description of pixels for importing pixels */
  109. typedef struct _Evas_Engine_Info      Evas_Engine_Info; /**< A generic Evas Engine information structure */
  110. typedef struct _Evas_Event_Mouse_Down Evas_Event_Mouse_Down; /**< Event structure for #EVAS_CALLBACK_MOUSE_DOWN event callbacks */
  111. typedef struct _Evas_Event_Mouse_Up   Evas_Event_Mouse_Up; /**< Event structure for #EVAS_CALLBACK_MOUSE_UP event callbacks */
  112. typedef struct _Evas_Event_Mouse_In   Evas_Event_Mouse_In; /**< Event structure for #EVAS_CALLBACK_MOUSE_IN event callbacks */
  113. typedef struct _Evas_Event_Mouse_Out  Evas_Event_Mouse_Out; /**< Event structure for #EVAS_CALLBACK_MOUSE_OUT event callbacks */
  114. typedef struct _Evas_Event_Mouse_Move Evas_Event_Mouse_Move; /**< Event structure for #EVAS_CALLBACK_MOUSE_MOVE event callbacks */
  115. typedef struct _Evas_Event_Mouse_Wheel Evas_Event_Mouse_Wheel; /**< Event structure for #EVAS_CALLBACK_MOUSE_WHEEL event callbacks */
  116. typedef struct _Evas_Event_Key_Down   Evas_Event_Key_Down; /**< Event structure for #EVAS_CALLBACK_KEY_DOWN event callbacks */
  117. typedef struct _Evas_Event_Key_Up     Evas_Event_Key_Up; /**< Event structure for #EVAS_CALLBACK_KEY_UP event callbacks */
  118.  
  119. #define EVAS_LOAD_ERROR_NONE                       0 /**< No error on load */
  120. #define EVAS_LOAD_ERROR_GENERIC                    1 /**< A non-specific error occured */
  121. #define EVAS_LOAD_ERROR_DOES_NOT_EXIST             2 /**< File (or file path) does not exist */
  122. #define EVAS_LOAD_ERROR_PERMISSION_DENIED          3 /**< Permission deinied to an existing file (or path) */
  123. #define EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED 4 /**< Allocation of resources failure prevented load */
  124. #define EVAS_LOAD_ERROR_CORRUPT_FILE               5 /**< File corrupt (but was detected as a known format) */
  125. #define EVAS_LOAD_ERROR_UNKNOWN_FORMAT             6 /**< File is not a known format */
  126.  
  127. #define EVAS_ALLOC_ERROR_NONE                      0 /**< No allocation error */
  128. #define EVAS_ALLOC_ERROR_FATAL                     1 /**< Allocation failed despite attempts to free up memory */
  129. #define EVAS_ALLOC_ERROR_RECOVERED                 2 /**< Allocation succeeded, but extra memory had to be found by freeing up speculative resources */
  130.  
  131. #define EVAS_TEXT_INVALID -1
  132. #define EVAS_TEXT_SPECIAL -2
  133.  
  134. struct _Evas_Pixel_Import_Source
  135. {
  136.    int format; /**< pixel format type ie ARGB32, YUV420P_601 etc. */
  137.    int w, h; /**< width and height of source in pixels */
  138.    void **rows; /**< an array of pointers (size depends on format) pointing to left edge of each scanline */
  139. };
  140.  
  141. #define EVAS_PIXEL_FORMAT_NONE                     0 /**< No pixel format */
  142. #define EVAS_PIXEL_FORMAT_ARGB32                   1 /**< ARGB 32bit pixel format with A in the high byte per 32bit pixel word */
  143. #define EVAS_PIXEL_FORMAT_YUV420P_601              2 /**< YUV 420 Planar format with CCIR 601 color encoding wuth contiguous planes in the order Y, U and V */
  144.  
  145. #define EVAS_COLOR_SPACE_ARGB                      0 /**< ARGB color space */
  146. #define EVAS_COLOR_SPACE_AHSV                      1 /**< AHSV color space */
  147.  
  148. #define EVAS_TEXTURE_REFLECT      0 /**< Gradient and image fill tiling mode - tiling reflects */
  149. #define EVAS_TEXTURE_REPEAT       1 /**< tiling repeats */
  150. #define EVAS_TEXTURE_RESTRICT     2 /**< tiling clamps */
  151.  
  152. struct _Evas_Engine_Info /** Generic engine information. Generic info is useless */
  153. {
  154.    int magic; /**< Magic number */
  155. };
  156.  
  157. struct _Evas_Event_Mouse_Down /** Mouse button press event */
  158. {
  159.    int button; /**< Mouse button number that went down (1 - 32) */
  160.    struct {
  161.       int x, y;
  162.    } output;
  163.    struct {
  164.       Evas_Coord x, y;
  165.    } canvas;
  166.    void          *data;
  167.    Evas_Modifier *modifiers;
  168.    Evas_Lock     *locks;
  169.  
  170.    Evas_Button_Flags flags;
  171.    unsigned int      timestamp;
  172. };
  173.  
  174. struct _Evas_Event_Mouse_Up /** Mouse butotn relase event */
  175. {
  176.    int button; /**< Mouse button number that was raised (1 - 32) */
  177.    struct {
  178.       int x, y;
  179.    } output;
  180.    struct {
  181.       Evas_Coord x, y;
  182.    } canvas;
  183.    void          *data;
  184.    Evas_Modifier *modifiers;
  185.    Evas_Lock     *locks;
  186.  
  187.    Evas_Button_Flags flags;
  188.    unsigned int      timestamp;
  189. };
  190.  
  191. struct _Evas_Event_Mouse_In /** Mouse enter event */
  192. {
  193.    int buttons; /**< Button pressed mask, Bits set to 1 are buttons currently pressed (bit 0 = mouse button 1, bit 1 = mouse button 2 etc.) */
  194.    struct {
  195.       int x, y;
  196.    } output;
  197.    struct {
  198.       Evas_Coord x, y;
  199.    } canvas;
  200.    void          *data;
  201.    Evas_Modifier *modifiers;
  202.    Evas_Lock     *locks;
  203.    unsigned int   timestamp;
  204. };
  205.  
  206. struct _Evas_Event_Mouse_Out /** Mouse leave event */
  207. {
  208.    int buttons; /**< Button pressed mask, Bits set to 1 are buttons currently pressed (bit 0 = mouse button 1, bit 1 = mouse button 2 etc.) */
  209.    struct {
  210.       int x, y;
  211.    } output;
  212.    struct {
  213.       Evas_Coord x, y;
  214.    } canvas;
  215.    void          *data;
  216.    Evas_Modifier *modifiers;
  217.    Evas_Lock     *locks;
  218.    unsigned int   timestamp;
  219. };
  220.  
  221. struct _Evas_Event_Mouse_Move /** Mouse button down event */
  222. {
  223.    int buttons; /**< Button pressed mask, Bits set to 1 are buttons currently pressed (bit 0 = mouse button 1, bit 1 = mouse button 2 etc.) */
  224.    struct {
  225.       struct {
  226.      int x, y;
  227.       } output;
  228.       struct {
  229.      Evas_Coord x, y;
  230.       } canvas;
  231.    } cur, prev;
  232.    void          *data;
  233.    Evas_Modifier *modifiers;
  234.    Evas_Lock     *locks;
  235.    unsigned int   timestamp;
  236. };
  237.  
  238. struct _Evas_Event_Mouse_Wheel /** Wheel event */
  239. {
  240.    int direction; /* 0 = default up/down wheel FIXME: more wheel types */
  241.    int z; /* ...,-2,-1 = down, 1,2,... = up */
  242.  
  243.    struct {
  244.       int x, y;
  245.    } output;
  246.  
  247.    struct {
  248.       Evas_Coord x, y;
  249.    } canvas;
  250.  
  251.    void         *data;
  252.    Evas_Modifier *modifiers;
  253.    Evas_Lock     *locks;
  254.    unsigned int   timestamp;
  255. };
  256.  
  257. struct _Evas_Event_Key_Down /** Key press event */
  258. {
  259.    char          *keyname; /**< The string name of the key pressed */
  260.    void          *data;
  261.    Evas_Modifier *modifiers;
  262.    Evas_Lock     *locks;
  263.  
  264.    const char    *key; /**< The logical key : (eg shift+1 == exclamation) */
  265.    const char    *string; /**< A UTF8 string if this keystroke has produced a visible string to be ADDED */
  266.    const char    *compose; /**< A UTF8 string if this keystroke has modified a string in the middle of being composed - this string replaces the previous one */
  267.    unsigned int   timestamp;
  268. };
  269.  
  270. struct _Evas_Event_Key_Up /** Key release event */
  271. {
  272.    char          *keyname; /**< The string name of the key released */
  273.    void          *data;
  274.    Evas_Modifier *modifiers;
  275.    Evas_Lock     *locks;
  276.  
  277.    const char    *key; /**< The logical key : (eg shift+1 == exclamation) */
  278.    const char    *string; /**< A UTF8 string if this keystroke has produced a visible string to be ADDED */
  279.    const char    *compose; /**< A UTF8 string if this keystroke has modified a string in the middle of being composed - this string replaces the previous one */
  280.    unsigned int   timestamp;
  281. };
  282.  
  283. #ifdef __cplusplus
  284. extern "C" {
  285. #endif
  286.  
  287.    EAPI Evas_List        *evas_list_append                  (Evas_List *list, const void *data);
  288.    EAPI Evas_List        *evas_list_prepend                 (Evas_List *list, const void *data);
  289.    EAPI Evas_List        *evas_list_append_relative         (Evas_List *list, const void *data, const void *relative);
  290.    EAPI Evas_List        *evas_list_prepend_relative        (Evas_List *list, const void *data, const void *relative);
  291.    EAPI Evas_List        *evas_list_remove                  (Evas_List *list, const void *data);
  292.    EAPI Evas_List        *evas_list_remove_list             (Evas_List *list, Evas_List *remove_list);
  293.    EAPI void             *evas_list_find                    (Evas_List *list, const void *data);
  294.    EAPI Evas_List        *evas_list_find_list               (Evas_List *list, const void *data);
  295.    EAPI Evas_List        *evas_list_free                    (Evas_List *list);
  296.    EAPI Evas_List        *evas_list_last                    (Evas_List *list);
  297.    EAPI Evas_List        *evas_list_next                    (Evas_List *list);
  298.    EAPI Evas_List        *evas_list_prev                    (Evas_List *list);
  299.    EAPI void             *evas_list_data                    (Evas_List *list);
  300.    EAPI int               evas_list_count                   (Evas_List *list);
  301.    EAPI void             *evas_list_nth                     (Evas_List *list, int n);
  302.    EAPI Evas_List        *evas_list_nth_list                (Evas_List *list, int n);
  303.    EAPI Evas_List        *evas_list_reverse                 (Evas_List *list);
  304.    EAPI Evas_List        *evas_list_sort                    (Evas_List *list, int size, int(*func)(void*,void*));
  305.    EAPI int               evas_list_alloc_error             (void);
  306.  
  307.    /* FIXME: add:
  308.     * api to add find, del members by data, size not just string and also
  309.     * provide hash generation functions settable by the app
  310.     *
  311.     * do we really need this? hmmm - let me think... there may be a better way
  312.     */
  313.    EAPI Evas_Hash        *evas_hash_add                     (Evas_Hash *hash, const char *key, const void*data);
  314.    EAPI Evas_Hash        *evas_hash_direct_add              (Evas_Hash *hash, const char *key, const void*data);
  315.    EAPI Evas_Hash        *evas_hash_del                     (Evas_Hash *hash, const char *key, const void*data);
  316.    EAPI void             *evas_hash_find                    (Evas_Hash *hash, const char *key);
  317.    EAPI void             *evas_hash_modify                  (Evas_Hash *hash, const char *key, const void*data);
  318.    EAPI int               evas_hash_size                    (Evas_Hash *hash);
  319.    EAPI void              evas_hash_free                    (Evas_Hash *hash);
  320.    EAPI void              evas_hash_foreach                 (Evas_Hash *hash, Evas_Bool (*func) (Evas_Hash *hash, const char *key, void *data, void *fdata), const void *fdata);
  321.    EAPI int               evas_hash_alloc_error             (void);
  322.    
  323.    EAPI const char       *evas_stringshare_add              (const char *str);
  324.    EAPI void              evas_stringshare_del              (const char *str);
  325.        
  326.  
  327.    EAPI int               evas_alloc_error                  (void);
  328.  
  329.    EAPI int               evas_init                         (void);
  330.    EAPI int               evas_shutdown                     (void);
  331.  
  332.    EAPI Evas             *evas_new                          (void);
  333.    EAPI void              evas_free                         (Evas *e);
  334.  
  335.    EAPI int               evas_render_method_lookup         (const char *name);
  336.    EAPI Evas_List        *evas_render_method_list           (void);
  337.    EAPI void              evas_render_method_list_free      (Evas_List *list);
  338.  
  339.    EAPI void              evas_output_method_set            (Evas *e, int render_method);
  340.    EAPI int               evas_output_method_get            (Evas *e);
  341.  
  342.    EAPI Evas_Engine_Info *evas_engine_info_get              (Evas *e);
  343.    EAPI void              evas_engine_info_set              (Evas *e, Evas_Engine_Info *info);
  344.  
  345.    EAPI void              evas_output_size_set              (Evas *e, int w, int h);
  346.    EAPI void              evas_output_size_get              (Evas *e, int *w, int *h);
  347.    EAPI void              evas_output_viewport_set          (Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
  348.    EAPI void              evas_output_viewport_get          (Evas *e, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
  349.  
  350.    EAPI Evas_Coord        evas_coord_screen_x_to_world      (Evas *e, int x);
  351.    EAPI Evas_Coord        evas_coord_screen_y_to_world      (Evas *e, int y);
  352.    EAPI int               evas_coord_world_x_to_screen      (Evas *e, Evas_Coord x);
  353.    EAPI int               evas_coord_world_y_to_screen      (Evas *e, Evas_Coord y);
  354.  
  355.    EAPI void              evas_pointer_output_xy_get        (Evas *e, int *x, int *y);
  356.    EAPI void              evas_pointer_canvas_xy_get        (Evas *e, Evas_Coord *x, Evas_Coord *y);
  357.    EAPI int               evas_pointer_button_down_mask_get (Evas *e);
  358.    EAPI Evas_Bool         evas_pointer_inside_get           (Evas *e);
  359.    EAPI void              evas_data_attach_set              (Evas *e, void *data);
  360.    EAPI void             *evas_data_attach_get              (Evas *e);
  361.        
  362. /* DOC UP TO HERE */
  363.    EAPI void              evas_damage_rectangle_add         (Evas *e, int x, int y, int w, int h);
  364.    EAPI void              evas_obscured_rectangle_add       (Evas *e, int x, int y, int w, int h);
  365.    EAPI void              evas_obscured_clear               (Evas *e);
  366.    EAPI Evas_List        *evas_render_updates               (Evas *e);
  367.    EAPI void              evas_render_updates_free          (Evas_List *updates);
  368.    EAPI void              evas_render                       (Evas *e);
  369.  
  370.    EAPI Evas_Object      *evas_object_rectangle_add         (Evas *e);
  371.  
  372.    EAPI Evas_Object      *evas_object_line_add              (Evas *e);
  373.    EAPI void              evas_object_line_xy_set           (Evas_Object *obj, Evas_Coord x1, Evas_Coord y1, Evas_Coord x2, Evas_Coord y2);
  374.    EAPI void              evas_object_line_xy_get           (Evas_Object *obj, Evas_Coord *x1, Evas_Coord *y1, Evas_Coord *x2, Evas_Coord *y2);
  375.  
  376.    EAPI Evas_Object      *evas_object_gradient_add          (Evas *e);
  377.    EAPI void              evas_object_gradient_color_add    (Evas_Object *obj, int r, int g, int b, int a, int distance);
  378.    EAPI void              evas_object_gradient_colors_clear (Evas_Object *obj);
  379.    EAPI void              evas_object_gradient_angle_set    (Evas_Object *obj, Evas_Angle angle);
  380.    EAPI Evas_Angle        evas_object_gradient_angle_get    (Evas_Object *obj);
  381.    EAPI void              evas_object_gradient_type_set     (Evas_Object *obj, const char *type, const char *instance_params);
  382.    EAPI void              evas_object_gradient_type_get     (Evas_Object *obj, char **type, char **instance_params);
  383.    EAPI void              evas_object_gradient_fill_set     (Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
  384.    EAPI void              evas_object_gradient_fill_get     (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
  385.    EAPI void              evas_object_gradient_spread_set   (Evas_Object *obj, int
  386. tile_mode);
  387.    EAPI int               evas_object_gradient_spread_get   (Evas_Object *obj);
  388.  
  389.    EAPI Evas_Object      *evas_object_polygon_add           (Evas *e);
  390.    EAPI void              evas_object_polygon_point_add     (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
  391.    EAPI void              evas_object_polygon_points_clear  (Evas_Object *obj);
  392.  
  393.    EAPI Evas_Object      *evas_object_image_add             (Evas *e);
  394.    EAPI void              evas_object_image_file_set        (Evas_Object *obj, const char *file, const char *key);
  395.    EAPI void              evas_object_image_file_get        (Evas_Object *obj, char **file, char **key);
  396.    EAPI void              evas_object_image_border_set      (Evas_Object *obj, int l, int r, int t, int b);
  397.    EAPI void              evas_object_image_border_get      (Evas_Object *obj, int *l, int *r, int *t, int *b);
  398.    EAPI void              evas_object_image_border_center_fill_set(Evas_Object *obj, Evas_Bool fill);
  399.    EAPI Evas_Bool         evas_object_image_border_center_fill_get(Evas_Object *obj);
  400.    EAPI void              evas_object_image_fill_set        (Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
  401.    EAPI void              evas_object_image_fill_get        (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
  402.    EAPI void              evas_object_image_size_set        (Evas_Object *obj, int w, int h);
  403.    EAPI void              evas_object_image_size_get        (Evas_Object *obj, int *w, int *h);
  404.    EAPI int               evas_object_image_load_error_get  (Evas_Object *obj);
  405.    EAPI void              evas_object_image_data_set        (Evas_Object *obj, void *data);
  406.    EAPI void             *evas_object_image_data_get        (Evas_Object *obj, Evas_Bool for_writing);
  407.    EAPI void              evas_object_image_data_copy_set   (Evas_Object *obj, void *data);
  408.    EAPI void              evas_object_image_data_update_add (Evas_Object *obj, int x, int y, int w, int h);
  409.    EAPI void              evas_object_image_alpha_set       (Evas_Object *obj, Evas_Bool has_alpha);
  410.    EAPI Evas_Bool         evas_object_image_alpha_get       (Evas_Object *obj);
  411.    EAPI void              evas_object_image_smooth_scale_set(Evas_Object *obj, Evas_Bool smooth_scale);
  412.    EAPI Evas_Bool         evas_object_image_smooth_scale_get(Evas_Object *obj);
  413.    EAPI void              evas_object_image_reload          (Evas_Object *obj);
  414.    EAPI Evas_Bool         evas_object_image_save            (Evas_Object *obj, const char *file, const char *key, const char *flags);
  415.    EAPI Evas_Bool         evas_object_image_pixels_import          (Evas_Object *obj, Evas_Pixel_Import_Source *pixels);
  416.    EAPI void              evas_object_image_pixels_get_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *o), void *data);
  417.    EAPI void              evas_object_image_pixels_dirty_set       (Evas_Object *obj, Evas_Bool dirty);
  418.    EAPI Evas_Bool         evas_object_image_pixels_dirty_get       (Evas_Object *obj);
  419.  
  420.    EAPI void              evas_image_cache_flush            (Evas *e);
  421.    EAPI void              evas_image_cache_reload           (Evas *e);
  422.    EAPI void              evas_image_cache_set              (Evas *e, int size);
  423.    EAPI int               evas_image_cache_get              (Evas *e);
  424.  
  425.    typedef enum _Evas_Text_Style_Type
  426.      {
  427.     EVAS_TEXT_STYLE_PLAIN,
  428.     EVAS_TEXT_STYLE_SHADOW,
  429.     EVAS_TEXT_STYLE_OUTLINE,
  430.     EVAS_TEXT_STYLE_SOFT_OUTLINE,
  431.     EVAS_TEXT_STYLE_GLOW,
  432.     EVAS_TEXT_STYLE_OUTLINE_SHADOW,
  433.     EVAS_TEXT_STYLE_FAR_SHADOW,
  434.     EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW,
  435.     EVAS_TEXT_STYLE_SOFT_SHADOW,
  436.     EVAS_TEXT_STYLE_FAR_SOFT_SHADOW
  437.      } Evas_Text_Style_Type;
  438.  
  439.    EAPI Evas_Object      *evas_object_text_add              (Evas *e);
  440.    EAPI void              evas_object_text_font_source_set  (Evas_Object *obj, const char *font);
  441.    EAPI const char       *evas_object_text_font_source_get  (Evas_Object *obj);
  442.    EAPI void              evas_object_text_font_set         (Evas_Object *obj, const char *font, Evas_Font_Size size);
  443.    EAPI void              evas_object_text_font_get         (Evas_Object *obj, char **font, Evas_Font_Size *size);
  444.    EAPI void              evas_object_text_text_set         (Evas_Object *obj, const char *text);
  445.    EAPI const char       *evas_object_text_text_get         (Evas_Object *obj);
  446.    EAPI Evas_Coord        evas_object_text_ascent_get       (Evas_Object *obj);
  447.    EAPI Evas_Coord        evas_object_text_descent_get      (Evas_Object *obj);
  448.    EAPI Evas_Coord        evas_object_text_max_ascent_get   (Evas_Object *obj);
  449.    EAPI Evas_Coord        evas_object_text_max_descent_get  (Evas_Object *obj);
  450.    EAPI Evas_Coord        evas_object_text_horiz_advance_get(Evas_Object *obj);
  451.    EAPI Evas_Coord        evas_object_text_vert_advance_get (Evas_Object *obj);
  452.    EAPI Evas_Coord        evas_object_text_inset_get        (Evas_Object *obj);
  453.    EAPI int               evas_object_text_char_pos_get     (Evas_Object *obj, int pos, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
  454.    EAPI int               evas_object_text_char_coords_get  (Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
  455.    EAPI Evas_Text_Style_Type evas_object_text_style_get     (Evas_Object *obj);
  456.    EAPI void              evas_object_text_style_set        (Evas_Object *obj, Evas_Text_Style_Type type);
  457.    EAPI void              evas_object_text_shadow_color_set (Evas_Object *obj, int r, int g, int b, int a);
  458.    EAPI void              evas_object_text_shadow_color_get (Evas_Object *obj, int *r, int *g, int *b, int *a);
  459.    EAPI void              evas_object_text_glow_color_set   (Evas_Object *obj, int r, int g, int b, int a);
  460.    EAPI void              evas_object_text_glow_color_get   (Evas_Object *obj, int *r, int *g, int *b, int *a);
  461.    EAPI void              evas_object_text_glow2_color_set  (Evas_Object *obj, int r, int g, int b, int a);
  462.    EAPI void              evas_object_text_glow2_color_get  (Evas_Object *obj, int *r, int *g, int *b, int *a);
  463.    EAPI void              evas_object_text_outline_color_set(Evas_Object *obj, int r, int g, int b, int a);
  464.    EAPI void              evas_object_text_outline_color_get(Evas_Object *obj, int *r, int *g, int *b, int *a);
  465.    EAPI void              evas_object_text_style_pad_get    (Evas_Object *obj, int *l, int *r, int *t, int *b);
  466.  
  467.    EAPI int               evas_string_char_next_get         (const char *str, int pos, int *decoded);
  468.    EAPI int               evas_string_char_prev_get         (const char *str, int pos, int *decoded);
  469.  
  470.    EAPI void              evas_font_path_clear              (Evas *e);
  471.    EAPI void              evas_font_path_append             (Evas *e, const char *path);
  472.    EAPI void              evas_font_path_prepend            (Evas *e, const char *path);
  473.    EAPI const Evas_List  *evas_font_path_list               (Evas *e);
  474.  
  475.    EAPI void              evas_font_cache_flush             (Evas *e);
  476.    EAPI void              evas_font_cache_set               (Evas *e, int size);
  477.    EAPI int               evas_font_cache_get               (Evas *e);
  478.  
  479.    typedef struct _Evas_Textblock_Style     Evas_Textblock_Style;
  480.    typedef struct _Evas_Textblock_Cursor    Evas_Textblock_Cursor;
  481.    typedef struct _Evas_Textblock_Rectangle Evas_Textblock_Rectangle;
  482.    
  483.    struct _Evas_Textblock_Rectangle
  484.      {
  485.     Evas_Coord x, y, w, h;
  486.      };
  487.    
  488.    typedef enum _Evas_Textblock_Text_Type
  489.      {
  490.     EVAS_TEXTBLOCK_TEXT_RAW,
  491.     EVAS_TEXTBLOCK_TEXT_PLAIN
  492.      } Evas_Textblock_Text_Type;
  493.    
  494.    EAPI Evas_Object                 *evas_object_textblock_add(Evas *e);
  495.    
  496.    EAPI Evas_Textblock_Style        *evas_textblock_style_new(void);
  497.    EAPI void                         evas_textblock_style_free(Evas_Textblock_Style *ts);
  498.    EAPI void                         evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text);
  499.    EAPI const char                  *evas_textblock_style_get(Evas_Textblock_Style *ts);
  500.    
  501.    EAPI void                         evas_object_textblock_style_set(Evas_Object *obj, Evas_Textblock_Style *ts);
  502.    EAPI const Evas_Textblock_Style  *evas_object_textblock_style_get(Evas_Object *obj);
  503.    
  504.    EAPI void                         evas_object_textblock_text_markup_set(Evas_Object *obj, const char *text);
  505.    EAPI const char                  *evas_object_textblock_text_markup_get(Evas_Object *obj);
  506.     
  507.    EAPI const Evas_Textblock_Cursor *evas_object_textblock_cursor_get(Evas_Object *obj);
  508.    EAPI Evas_Textblock_Cursor       *evas_object_textblock_cursor_new(Evas_Object *obj);
  509.    
  510.    EAPI void                         evas_textblock_cursor_free(Evas_Textblock_Cursor *cur);
  511.    
  512.    EAPI void                         evas_textblock_cursor_node_first(Evas_Textblock_Cursor *cur);
  513.    EAPI void                         evas_textblock_cursor_node_last(Evas_Textblock_Cursor *cur);
  514.    EAPI Evas_Bool                    evas_textblock_cursor_node_next(Evas_Textblock_Cursor *cur);
  515.    EAPI Evas_Bool                    evas_textblock_cursor_node_prev(Evas_Textblock_Cursor *cur);
  516.    EAPI Evas_Bool                    evas_textblock_cursor_char_next(Evas_Textblock_Cursor *cur);
  517.    EAPI Evas_Bool                    evas_textblock_cursor_char_prev(Evas_Textblock_Cursor *cur);
  518.    EAPI void                         evas_textblock_cursor_char_first(Evas_Textblock_Cursor *cur);
  519.    EAPI void                         evas_textblock_cursor_char_last(Evas_Textblock_Cursor *cur);
  520.    EAPI void                         evas_textblock_cursor_line_first(Evas_Textblock_Cursor *cur);
  521.    EAPI void                         evas_textblock_cursor_line_last(Evas_Textblock_Cursor *cur);
  522.    EAPI int                          evas_textblock_cursor_pos_get(Evas_Textblock_Cursor *cur);
  523.    EAPI void                         evas_textblock_cursor_pos_set(Evas_Textblock_Cursor *cur, int pos);
  524.    EAPI Evas_Bool                    evas_textblock_cursor_line_set(Evas_Textblock_Cursor *cur, int line);
  525.    EAPI int                          evas_textblock_cursor_compare(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2);
  526.    EAPI void                         evas_textblock_cursor_copy(Evas_Textblock_Cursor *cur, Evas_Textblock_Cursor *cur_dest);
  527.    
  528.    EAPI void                         evas_textblock_cursor_text_append(Evas_Textblock_Cursor *cur, const char *text);
  529.    EAPI void                         evas_textblock_cursor_text_prepend(Evas_Textblock_Cursor *cur, const char *text);
  530.  
  531.    EAPI void                         evas_textblock_cursor_format_append(Evas_Textblock_Cursor *cur, const char *format);
  532.    EAPI void                         evas_textblock_cursor_format_prepend(Evas_Textblock_Cursor *cur, const char *format);
  533.    EAPI void                         evas_textblock_cursor_node_delete(Evas_Textblock_Cursor *cur);
  534.    EAPI void                         evas_textblock_cursor_char_delete(Evas_Textblock_Cursor *cur);
  535.    EAPI void                         evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2);
  536.    
  537.    EAPI const char                  *evas_textblock_cursor_node_text_get(Evas_Textblock_Cursor *cur);
  538.    EAPI int                          evas_textblock_cursor_node_text_length_get(Evas_Textblock_Cursor *cur);
  539.    EAPI const char                  *evas_textblock_cursor_node_format_get(Evas_Textblock_Cursor *cur);
  540.    EAPI char                        *evas_textblock_cursor_range_text_get(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2, Evas_Textblock_Text_Type format);
  541.        
  542.    EAPI int                          evas_textblock_cursor_char_geometry_get(Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
  543.    EAPI int                          evas_textblock_cursor_line_geometry_get(Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
  544.    EAPI Evas_Bool                    evas_textblock_cursor_char_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord x, Evas_Coord y);
  545.    EAPI int                          evas_textblock_cursor_line_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord y);
  546.    EAPI Evas_List                   *evas_textblock_cursor_range_geometry_get(Evas_Textblock_Cursor *cur1, Evas_Textblock_Cursor *cur2);
  547.    
  548.    EAPI Evas_Bool                    evas_object_textblock_line_number_geometry_get(Evas_Object *obj, int line, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
  549.    EAPI void                         evas_object_textblock_clear(Evas_Object *obj);
  550.    EAPI void                         evas_object_textblock_size_formatted_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
  551.    EAPI void                         evas_object_textblock_size_native_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
  552.    EAPI void                         evas_object_textblock_style_insets_get(Evas_Object *obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b);
  553.    
  554.    
  555.    EAPI void              evas_object_del                   (Evas_Object *obj);
  556.  
  557.    EAPI const char       *evas_object_type_get              (Evas_Object *obj);
  558.  
  559.    EAPI void              evas_object_layer_set             (Evas_Object *obj, int l);
  560.    EAPI int               evas_object_layer_get             (Evas_Object *obj);
  561.  
  562.    EAPI void              evas_object_raise                 (Evas_Object *obj);
  563.    EAPI void              evas_object_lower                 (Evas_Object *obj);
  564.    EAPI void              evas_object_stack_above           (Evas_Object *obj, Evas_Object *above);
  565.    EAPI void              evas_object_stack_below           (Evas_Object *obj, Evas_Object *below);
  566.    EAPI Evas_Object      *evas_object_above_get             (Evas_Object *obj);
  567.    EAPI Evas_Object      *evas_object_below_get             (Evas_Object *obj);
  568.    EAPI Evas_Object      *evas_object_bottom_get            (Evas *e);
  569.    EAPI Evas_Object      *evas_object_top_get               (Evas *e);
  570.  
  571.    EAPI void              evas_object_move                  (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
  572.    EAPI void              evas_object_resize                (Evas_Object *obj, Evas_Coord w, Evas_Coord h);
  573.    EAPI void              evas_object_geometry_get          (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
  574.  
  575.    EAPI void              evas_object_show                  (Evas_Object *obj);
  576.    EAPI void              evas_object_hide                  (Evas_Object *obj);
  577.    EAPI Evas_Bool         evas_object_visible_get           (Evas_Object *obj);
  578.  
  579.    EAPI void              evas_object_anti_alias_set        (Evas_Object *obj, Evas_Bool antialias);
  580.    EAPI Evas_Bool         evas_object_anti_alias_get        (Evas_Object *obj);
  581.  
  582.    EAPI void              evas_object_color_set             (Evas_Object *obj, int r, int g, int b, int a);
  583.    EAPI void              evas_object_color_get             (Evas_Object *obj, int *r, int *g, int *b, int *a);
  584.  
  585.    EAPI void              evas_object_color_interpolation_set  (Evas_Object *obj, int color_space);
  586.    EAPI int               evas_object_color_interpolation_get  (Evas_Object *obj);
  587.  
  588.    EAPI void              evas_object_clip_set              (Evas_Object *obj, Evas_Object *clip);
  589.    EAPI Evas_Object      *evas_object_clip_get              (Evas_Object *obj);
  590.    EAPI void              evas_object_clip_unset            (Evas_Object *obj);
  591.    EAPI const Evas_List  *evas_object_clipees_get           (Evas_Object *obj);
  592.  
  593.    EAPI void              evas_object_data_set              (Evas_Object *obj, const char *key, const void *data);
  594.    EAPI void             *evas_object_data_get              (Evas_Object *obj, const char *key);
  595.    EAPI void             *evas_object_data_del              (Evas_Object *obj, const char *key);
  596.  
  597.    EAPI void              evas_object_name_set              (Evas_Object *obj, const char *name);
  598.    EAPI const char       *evas_object_name_get              (Evas_Object *obj);
  599.    EAPI Evas_Object      *evas_object_name_find             (Evas *e, const char *name);
  600.  
  601.    EAPI Evas             *evas_object_evas_get              (Evas_Object *obj);
  602.  
  603.    EAPI Evas_Object      *evas_object_top_at_xy_get         (Evas *e, Evas_Coord x, Evas_Coord y, Evas_Bool include_pass_events_objects, Evas_Bool include_hidden_objects);
  604.    EAPI Evas_Object      *evas_object_top_at_pointer_get    (Evas *e);
  605.    EAPI Evas_Object      *evas_object_top_in_rectangle_get  (Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Evas_Bool include_pass_events_objects, Evas_Bool include_hidden_objects);
  606.  
  607.    EAPI Evas_List        *evas_objects_at_xy_get            (Evas *e, Evas_Coord x, Evas_Coord y, Evas_Bool include_pass_events_objects, Evas_Bool include_hidden_objects);
  608.    EAPI Evas_List        *evas_objects_in_rectangle_get     (Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Evas_Bool include_pass_events_objects, Evas_Bool include_hidden_objects);
  609.  
  610.    EAPI Evas_Smart       *evas_smart_new                    (const char *name, void (*func_add) (Evas_Object *obj), void (*func_del) (Evas_Object *obj), void (*func_layer_set) (Evas_Object *obj, int l), void (*func_raise) (Evas_Object *obj), void (*func_lower) (Evas_Object *obj), void (*func_stack_above) (Evas_Object *obj, Evas_Object *above), void (*func_stack_below) (Evas_Object *obj, Evas_Object *below), void (*func_move) (Evas_Object *obj, Evas_Coord x, Evas_Coord y), void (*func_resize) (Evas_Object *obj, Evas_Coord w, Evas_Coord h), void (*func_show) (Evas_Object *obj), void (*func_hide) (Evas_Object *obj), void (*func_color_set) (Evas_Object *obj, int r, int g, int b, int a), void (*func_clip_set) (Evas_Object *obj, Evas_Object *clip), void (*func_clip_unset) (Evas_Object *obj), const void *data);
  611.    EAPI void              evas_smart_free                   (Evas_Smart *s);
  612.    EAPI Evas_Smart       *evas_smart_class_new              (Evas_Smart_Class *sc);
  613.    EAPI Evas_Smart_Class *evas_smart_class_get              (Evas_Smart *s);
  614.  
  615.    EAPI void             *evas_smart_data_get               (Evas_Smart *s);
  616.  
  617.    EAPI Evas_Object      *evas_object_smart_add             (Evas *e, Evas_Smart *s);
  618.    EAPI void              evas_object_smart_member_add      (Evas_Object *obj, Evas_Object *smart_obj);
  619.    EAPI void              evas_object_smart_member_del      (Evas_Object *obj);
  620.    EAPI Evas_Smart       *evas_object_smart_smart_get       (Evas_Object *obj);
  621.    EAPI void             *evas_object_smart_data_get        (Evas_Object *obj);
  622.    EAPI void              evas_object_smart_data_set        (Evas_Object *obj, void *data);
  623.    EAPI void              evas_object_smart_callback_add    (Evas_Object *obj, const char *event, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data);
  624.    EAPI void             *evas_object_smart_callback_del    (Evas_Object *obj, const char *event, void (*func) (void *data, Evas_Object *obj, void *event_info));
  625.    EAPI void              evas_object_smart_callback_call   (Evas_Object *obj, const char *event, void *event_info);
  626.  
  627.    EAPI void              evas_event_freeze                 (Evas *e);
  628.    EAPI void              evas_event_thaw                   (Evas *e);
  629.    EAPI int               evas_event_freeze_get             (Evas *e);
  630.    EAPI void              evas_event_feed_mouse_down        (Evas *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data);
  631.    EAPI void              evas_event_feed_mouse_up          (Evas *e, int b, Evas_Button_Flags flags, unsigned int timestamp, const void *data);
  632.    EAPI void              evas_event_feed_mouse_move        (Evas *e, int x, int y, unsigned int timestamp, const void *data);
  633.    EAPI void              evas_event_feed_mouse_in          (Evas *e, unsigned int timestamp, const void *data);
  634.    EAPI void              evas_event_feed_mouse_out         (Evas *e, unsigned int timestamp, const void *data);
  635.    EAPI void              evas_event_feed_mouse_wheel       (Evas *e, int direction, int z, unsigned int timestamp, const void *data);
  636.    EAPI void              evas_event_feed_key_down          (Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data);
  637.    EAPI void              evas_event_feed_key_up            (Evas *e, const char *keyname, const char *key, const char *string, const char *compose, unsigned int timestamp, const void *data);
  638.  
  639.    EAPI void              evas_object_focus_set             (Evas_Object *obj, Evas_Bool focus);
  640.    EAPI Evas_Bool         evas_object_focus_get             (Evas_Object *obj);
  641.  
  642.    EAPI Evas_Object      *evas_focus_get                    (Evas *e);
  643.  
  644.    EAPI Evas_Modifier    *evas_key_modifier_get             (Evas *e);
  645.    EAPI Evas_Lock        *evas_key_lock_get                 (Evas *e);
  646.  
  647.    EAPI Evas_Bool         evas_key_modifier_is_set          (Evas_Modifier *m, const char *keyname);
  648.  
  649.    EAPI Evas_Bool         evas_key_lock_is_set              (Evas_Lock *l, const char *keyname);
  650.  
  651.    EAPI void              evas_key_modifier_add             (Evas *e, const char *keyname);
  652.    EAPI void              evas_key_modifier_del             (Evas *e, const char *keyname);
  653.    EAPI void              evas_key_lock_add                 (Evas *e, const char *keyname);
  654.    EAPI void              evas_key_lock_del                 (Evas *e, const char *keyname);
  655.  
  656.    EAPI void              evas_key_modifier_on              (Evas *e, const char *keyname);
  657.    EAPI void              evas_key_modifier_off             (Evas *e, const char *keyname);
  658.    EAPI void              evas_key_lock_on                  (Evas *e, const char *keyname);
  659.    EAPI void              evas_key_lock_off                 (Evas *e, const char *keyname);
  660.  
  661.    EAPI Evas_Modifier_Mask evas_key_modifier_mask_get       (Evas *e, const char *keyname);
  662.  
  663.    EAPI Evas_Bool         evas_object_key_grab              (Evas_Object *obj, const char *keyname, Evas_Modifier_Mask modifiers, Evas_Modifier_Mask not_modifiers, Evas_Bool exclusive);
  664.    EAPI void              evas_object_key_ungrab            (Evas_Object *obj, const char *keyname, Evas_Modifier_Mask modifiers, Evas_Modifier_Mask not_modifiers);
  665.  
  666.    EAPI void              evas_object_pass_events_set       (Evas_Object *obj, Evas_Bool pass);
  667.    EAPI Evas_Bool         evas_object_pass_events_get       (Evas_Object *obj);
  668.    EAPI void              evas_object_repeat_events_set     (Evas_Object *obj, Evas_Bool repeat);
  669.    EAPI Evas_Bool         evas_object_repeat_events_get     (Evas_Object *obj);
  670.    EAPI void              evas_object_propagate_events_set  (Evas_Object *obj, Evas_Bool prop);
  671.    EAPI Evas_Bool         evas_object_propagate_events_get  (Evas_Object *obj);
  672.        
  673.    EAPI void              evas_object_event_callback_add    (Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info), const void *data);
  674.    EAPI void             *evas_object_event_callback_del    (Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info));
  675.  
  676.    EAPI void              evas_object_intercept_show_callback_add        (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), const void *data);
  677.    EAPI void             *evas_object_intercept_show_callback_del        (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj));
  678.    EAPI void              evas_object_intercept_hide_callback_add        (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), const void *data);
  679.    EAPI void             *evas_object_intercept_hide_callback_del        (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj));
  680.    EAPI void              evas_object_intercept_move_callback_add        (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Evas_Coord x, Evas_Coord y), const void *data);
  681.    EAPI void             *evas_object_intercept_move_callback_del        (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Evas_Coord x, Evas_Coord y));
  682.    EAPI void              evas_object_intercept_resize_callback_add      (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Evas_Coord w, Evas_Coord h), const void *data);
  683.    EAPI void             *evas_object_intercept_resize_callback_del      (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Evas_Coord w, Evas_Coord h));
  684.    EAPI void              evas_object_intercept_raise_callback_add       (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), const void *data);
  685.    EAPI void             *evas_object_intercept_raise_callback_del       (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj));
  686.    EAPI void              evas_object_intercept_lower_callback_add       (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), const void *data);
  687.    EAPI void             *evas_object_intercept_lower_callback_del       (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj));
  688.    EAPI void              evas_object_intercept_stack_above_callback_add (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Evas_Object *above), const void *data);
  689.    EAPI void             *evas_object_intercept_stack_above_callback_del (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Evas_Object *above));
  690.    EAPI void              evas_object_intercept_stack_below_callback_add (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Evas_Object *below), const void *data);
  691.    EAPI void             *evas_object_intercept_stack_below_callback_del (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Evas_Object *below));
  692.    EAPI void              evas_object_intercept_layer_set_callback_add   (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, int l), const void *data);
  693.    EAPI void             *evas_object_intercept_layer_set_callback_del   (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, int l));
  694.  
  695. /* Evas utility routines for color space conversions */
  696. /* hsv color space has h in the range 0.0 to 360.0, and s,v in the range 0.0 to 1.0 */
  697. /* rgb color space has r,g,b in the range 0 to 255 */
  698.    EAPI void              evas_color_hsv_to_rgb             (float h, float s, float v, int *r, int *g, int *b);
  699.    EAPI void              evas_color_rgb_to_hsv             (int r, int g, int b, float *h, float *s, float *v); 
  700.  
  701. /* Evas imaging api - exports some of the comon gfx engine routines */
  702. /* this is not complete and should be considered experimental. use at your */
  703. /* own risk */
  704.  
  705.    typedef struct _Evas_Imaging_Image Evas_Imaging_Image;
  706.    typedef struct _Evas_Imaging_Font Evas_Imaging_Font;
  707.  
  708.    EAPI Evas_Imaging_Image *evas_imaging_image_load      (const char *file, const char *key);
  709.    EAPI void                evas_imaging_image_free      (Evas_Imaging_Image *im);
  710.    EAPI void                evas_imaging_image_size_get  (Evas_Imaging_Image *im, int *w, int *h);
  711.    EAPI Evas_Bool           evas_imaging_image_alpha_get (Evas_Imaging_Image *im);
  712.    EAPI void                evas_imaging_image_cache_set (int bytes);
  713.    EAPI int                 evas_imaging_image_cache_get (void);
  714.  
  715.    EAPI Evas_Imaging_Font  *evas_imaging_font_load                      (const char *file, const char *key, int size);
  716.    EAPI void                evas_imaging_font_free                      (Evas_Imaging_Font *fn);
  717.    EAPI int                 evas_imaging_font_ascent_get                (Evas_Imaging_Font *fn);
  718.    EAPI int                 evas_imaging_font_descent_get               (Evas_Imaging_Font *fn);
  719.    EAPI int                 evas_imaging_font_max_ascent_get            (Evas_Imaging_Font *fn);
  720.    EAPI int                 evas_imaging_font_max_descent_get           (Evas_Imaging_Font *fn);
  721.    EAPI int                 evas_imaging_font_line_advance_get          (Evas_Imaging_Font *fn);
  722.    EAPI void                evas_imaging_font_string_advance_get        (Evas_Imaging_Font *fn, char *str, int *x, int *y);
  723.    EAPI void                evas_imaging_font_string_size_query         (Evas_Imaging_Font *fn, char *str, int *w, int *h);
  724.    EAPI int                 evas_imaging_font_string_inset_get          (Evas_Imaging_Font *fn, char *str);
  725.    EAPI int                 evas_imaging_font_string_char_coords_get    (Evas_Imaging_Font *fn, char *str, int pos, int *cx, int *cy, int *cw, int *ch);
  726.    EAPI int                 evas_imaging_font_string_char_at_coords_get (Evas_Imaging_Font *fn, char *str, int x, int y, int *cx, int *cy, int *cw, int *ch);
  727.  
  728.    EAPI void                evas_imaging_font_cache_set  (int bytes);
  729.    EAPI int                 evas_imaging_font_cache_get  (void);
  730.  
  731. #ifdef __cplusplus
  732. }
  733. #endif
  734.  
  735. #endif
  736.